home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 11 / FM Towns Free Software Collection 11.iso / t_os / tool / i_o / i_o.bas < prev    next >
BASIC Source File  |  1995-07-26  |  6KB  |  180 lines

  1. 10010 CLEAR ,,,,,500*1024
  2. 10020 SCREEN 0 : MOUSE 0
  3. 10030 WINDOW(0,479)-(639,0)
  4. 10040 VIEW(0,0)-(639,479)
  5. 10050 WIDTH 80,25
  6. 10060 CONSOLE 3,22,0
  7. 10070 PALETTE 0,[  0,  0,  0]
  8. 10080 PALETTE 1,[ 63, 63, 63]
  9. 10090 PALETTE 2,[127,127,127]
  10. 10100 PALETTE 3,[255,255,255]
  11. 10110 COLOR 7,,,4
  12. 10120 CLS
  13. 10130 DEF FONT "システム   12ドット"
  14. 10140 LOCATE  0,0 : PRINT " ADDRESS       DATA"
  15. 10150 LOCATE  0,1 : PRINT " Hex   Dec     Hex Dec"
  16. 10160 LOCATE 40,0 : PRINT "実行キー : 一時停止"
  17. 10170 LOCATE 40,1 : PRINT "ESCキー  : 終了"
  18. 10180 LOCATE 0,3
  19. 10190 READ S
  20. 10200 FOR I=S TO 65535
  21. 10210    T=0
  22. 10220    A=INP(I)
  23. 10230    PRINT SPC(4-LEN(HEX$(I)));HEX$(I);
  24. 10240    PRINT USING " #####";I;
  25. 10250    PRINT SPC(8-LEN(HEX$(A)));HEX$(A);
  26. 10260    PRINT USING " ###";A
  27. 10270    FOR J=0 TO 9
  28. 10280       B=INP(I)
  29. 10290       IF A><B THEN T=1
  30. 10300    NEXT
  31. 10310    IF T=1 THEN
  32. 10320       CLS 1
  33. 10330       PRINT SPC(4-LEN(HEX$(I)));HEX$(I);
  34. 10340       PRINT USING " #####";I;
  35. 10350       LOCATE 40,0 : PRINT "実行キー : 次のアドレス"
  36. 10360       LOCATE 40,1 : PRINT "取消キー : 表示モード変更    C : クリア"
  37. 10370       FOR J=15 TO 255 STEP 16
  38. 10380          LINE(64+J*2,262)-STEP(0,1),PSET,%3
  39. 10390          SYMBOL(50+J*2,276),STR$(J),3/4,3/4
  40. 10400       NEXT
  41. 10410       FOR U=0 TO 16
  42. 10420          FOR V=0 TO 16
  43. 10430             LINE(400,300+V*8)-STEP(128,0),PSET,%1
  44. 10440          NEXT
  45. 10450          LINE(400+U*8,300)-STEP(0,128),PSET,%1
  46. 10460       NEXT
  47. 10470       LINE(400,300)-(528,428),PSET,%2,B
  48. 10480       LINE(400,364)-(528,364),PSET,%2
  49. 10490       LINE(464,300)-(464,428),PSET,%2
  50. 10500       SYMBOL(376,370),"下位",3/4,3/4
  51. 10510       SYMBOL(394,310),"0",3/4,3/4
  52. 10520       SYMBOL(394,430),"F",3/4,3/4
  53. 10530       SYMBOL(452,299),"上位",3/4,3/4
  54. 10540       SYMBOL(403,299),"0",3/4,3/4
  55. 10550       SYMBOL(523,299),"F",3/4,3/4
  56. 10560       FOR J=0 TO 7
  57. 10570          SYMBOL(59+J*24,356),STR$(7-J),6/4,3/4
  58. 10580          LINE(64+J*24,320)-STEP(20,20),PSET,%3,B
  59. 10590       NEXT
  60. 10600       SYMBOL(622,255),"255",3/4,3/4
  61. 10610       SYMBOL(622,191),"191",3/4,3/4
  62. 10620       SYMBOL(622,127),"127",3/4,3/4
  63. 10630       SYMBOL(622, 63)," 63",3/4,3/4
  64. 10640       X=619 : YO=INP(I)
  65. 10650       IN$=""
  66. 10660       WHILE IN$><CHR$(&H0D)
  67. 10670          IN$=INKEY$
  68. 10680          X=X+1
  69. 10690          IF X=620 THEN
  70. 10700             X=0 : XO=-1
  71. 10710             LINE(0,0)-(619,255),PSET,%1,BF
  72. 10720             LINE(0,63)-STEP(619,0),PSET,%2
  73. 10730             LINE(0,127)-STEP(619,0),PSET,%2
  74. 10740             LINE(0,191)-STEP(619,0),PSET,%2
  75. 10750             LINE(0,255)-STEP(619,0),PSET,%2
  76. 10760          ENDIF
  77. 10770          Y=INP(I)
  78. 10780          FOR J=0 TO 7
  79. 10790             BIT=Y AND (2^(7-J))
  80. 10800             IF BIT THEN
  81. 10810                 LINE(69+J*24,325)-STEP(10,10),PSET,%3,BF
  82. 10820               ELSE
  83. 10830                 LINE(69+J*24,325)-STEP(10,10),PSET,%0,BF
  84. 10840             ENDIF
  85. 10850          NEXT
  86. 10860          U=403+(Y\16)*8
  87. 10870          V=303+(Y MOD 16)*8
  88. 10880          LINE(U,V)-STEP(2,2),PSET,%3,BF
  89. 10890          LINE(64,260)-(574,261),PSET,%1,BF
  90. 10900          LINE(64,260)-(64+Y*2,261),PSET,%3,BF
  91. 10910          IF L=0 THEN LINE(X,0)-(X,Y),PSET,%3
  92. 10920          IF L=1 THEN LINE(XO,YO)-(X,Y),PSET,%3
  93. 10930          IF L=2 THEN PSET(X,Y),%3
  94. 10940          XO=X : YO=Y
  95. 10950          LOCATE 16,3 : PRINT SPC(2-LEN(HEX$(Y)));HEX$(Y);
  96. 10960          PRINT USING " ###";Y
  97. 10970          LINE(U,V)-STEP(2,2),PSET,%0,B
  98. 10980          IF IN$=CHR$(&H18) THEN
  99. 10990             L=L+1
  100. 11000             IF L=3 THEN L=0
  101. 11010          ENDIF
  102. 11020          IF IN$="c" OR IN$="C" THEN 
  103. 11030             FOR U=0 TO 15
  104. 11040                FOR V=0 TO 15
  105. 11050                   PSET(404+U*8,304+V*8),%0
  106. 11060                NEXT
  107. 11070             NEXT
  108. 11080             LINE(0,0)-(619,255),PSET,%1,BF
  109. 11090             LINE(0,63)-STEP(619,0),PSET,%2
  110. 11100             LINE(0,127)-STEP(619,0),PSET,%2
  111. 11110             LINE(0,191)-STEP(619,0),PSET,%2
  112. 11120             LINE(0,255)-STEP(619,0),PSET,%2
  113. 11130             X=0 : XO=-1
  114. 11140          ENDIF
  115. 11150       WEND
  116. 11160       WHILE INKEY$><"" : WEND
  117. 11170       CLS 5
  118. 11180       LOCATE 40,0 : PRINT "実行キー : 一時停止    "
  119. 11190       LOCATE 40,1 : PRINT "ESCキー  : 終了                        "
  120. 11200       LOCATE 0,3
  121. 11210    ENDIF
  122. 11220    IN$=INKEY$
  123. 11230    IF IN$=CHR$(&H0D) THEN
  124. 11240       IN$=""
  125. 11250       WHILE NOT(IN$=CHR$(&H0D) OR IN$=CHR$(&H1B)) : IN$=INKEY$ : WEND
  126. 11260    ENDIF
  127. 11270    IF IN$=CHR$(&H1B) THEN I=65535
  128. 11280 NEXT
  129. 11290 '
  130. 11300 '
  131. 11310 '
  132. 11320 '検査開始アドレス
  133. 11330 '
  134. 11340 DATA 0
  135. 11350 '
  136. 11360 '
  137. 11370 '
  138. 11380 ' ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  139. 11390 '                              説 明 書
  140. 11400 '__________________________________
  141. 11410 '
  142. 11420 '
  143. 11430 '  このプログラムは、I/Oアドレスを順次検査していき、データの変化が著
  144. 11440 ' しいアドレスについて各種表示方法でそのデータをリアルアイムに表示し
  145. 11450 ' ます。
  146. 11460 ' 
  147. 11470 ' 各種表示の説明
  148. 11480 ' 
  149. 11490 ' 0) I/Oアドレス
  150. 11500 ' 
  151. 11510 '    画面左上のADDRESS欄に16進数(Hex)と10進数(Dec)で表示します。
  152. 11520 ' 
  153. 11530 ' 1) 数値
  154. 11540 ' 
  155. 11550 '    画面左上のDATA欄に16進数(Hex)と10進数(Dec)で表示します。
  156. 11560 ' 
  157. 11570 ' 2) ビット
  158. 11580 ' 
  159. 11590 '    1)数値 の下に箱が8個あり、データをビット状に表現します。0の場合
  160. 11600 '   は箱の中は黒く、1の場合は白くなります。箱の上の数字を x としたと
  161. 11610 '   き 2^x がその箱の値になります。
  162. 11620 ' 
  163. 11630 ' 3) ボード
  164. 11640 ' 
  165. 11650 '    画面右上に、データ(16進数)の上位を横軸に、下位を縦軸にプロット
  166. 11660 '   していきます。データを残していくので、傾向を知ることができます。
  167. 11670 ' 
  168. 11680 ' 4) バー
  169. 11690 ' 
  170. 11700 '    画面中程に、横方向にデータをバーで表示します。
  171. 11710 ' 
  172. 11720 ' 5) グラフ
  173. 11730 ' 
  174. 11740 '    画面下に、データをグラフにして表示します。表示モードは次の3種類
  175. 11750 '   があり、Cキーで変更することができます。
  176. 11760 ' 
  177. 11770 '       ・棒グラフ
  178. 11780 '       ・折れ線グラフ
  179. 11790 '       ・点
  180.